Recency, Frequency, Monetary (RFM) Model Details
Overview
Recency, Frequency, and Monetary (RFM) analysis helps marketers identify customer cohorts based on how recently customers purchased, how often they purchase, and how much they spend. These signals are commonly used to understand customer value, to identify loyal or high-potential customers, and to recognize lapsed or at-risk audiences that may benefit from win-back engagement.
Marketing insights become even more powerful when you also understand the context for what product categories, items, brands, and prices are most recently / frequently purchased, what locations the customer typically visits, the payment methods they use, or the day of the week or the hour of the day when they purchase.
The RFM model in Loyalty processes Member purchase history and derives Recency, Frequency, and Monetary insights for your Members. These insights are designed to help marketers identify meaningful purchase behavior patterns, including high-value, under-performing, lapsed, and at-risk customer cohorts.
The RFM model is strictly an observational model; it ranks and scores Members based on their historical behavior. The model does not attempt to predict future behavior.
Note: The RFM model is an optional feature that must be enabled in your Loyalty account. Speak to your Zeta support team for details on how to enable this feature.
When the RFM model is enabled in a Loyalty account, the resulting RFM outputs are stored as Member Attributes on the Member Profile. These Attributes can then be used to target and personalize Offers, Rewards, and other Loyalty assets, in order to improve loyalty program engagement and drive desired outcomes, like repeat purchases and increased customer lifetime value.
How it Works
When the RFM model is enabled in your Loyalty account, the platform will execute an initial scoring run to process and score all eligible Members in your database. A Member is considered eligible for the RFM model if they have at least one Purchase Activity within the past two years.
Note: The RFM model processes only the standard Purchase Activity Type; the model will not process any custom purchase Activity Types defined in your account.
Following the initial run, the model will subsequently run at the following cadence:
-
Weekly: Process and score all eligible Members.
-
Daily: Process and score Members with a Purchase Activity in the past 24 hours.
RFM Scoring Attributes
The RFM model populates the following Member Attributes on the Member Profile:
| Group | Member Attribute Name | Data Type | Description |
|---|---|---|---|
|
Recency |
Recency Decile |
Integer |
Decile indicating purchase recency among other program Members; 1 is high (more recent), 10 is low (less recent) |
|
Recency |
Recency Score |
Integer |
1-5 score indicating grouped recency value; 1 is low, 5 is high |
|
Recency |
First Purchase Date |
DateTime |
Date of first purchase available to system (looking back up to 2 years). |
|
Recency |
Last Purchase Date |
Date Time |
Date of last purchase |
|
Recency |
Last Purchase Amount |
Decimal |
Amount of last purchase |
|
Recency |
Recent Categories |
String |
Top 5 Product Categories most recently purchased (tie breaker: by spend) |
|
Recency |
Recent SKUs |
String |
Top 5 Product SKUs most recently purchased (tie breaker: by spend) |
|
Frequency |
Frequency Decile |
Integer |
Decile indicating purchase frequency among other program Members; 1 is high (more frequent), 10 is low (less frequent) |
|
Frequency |
Frequency Score |
Integer |
1-5 score indicating grouped frequency value; 1 is low, 5 is high |
|
Frequency |
Purchase Count Total |
Integer |
Total count of purchases for lifetime of data available to system (looking back up to 2 years). |
|
Frequency |
Purchase Count Last Year |
Integer |
Count of purchases within the last year |
|
Frequency |
Frequent Categories |
String |
Top 5 Product Categories by frequency |
|
Frequency |
Frequent SKUs |
String |
Top 5 Product SKUs by frequency |
|
Monetary |
Monetary Decile |
Integer |
Decile indicating purchase spend among other program Members (by average revenue grouping) |
|
Monetary |
Monetary Score |
Integer |
1-5 score indicating grouped monetary spend value; 1 is low, 5 is high |
|
Monetary |
Spend Total |
Decimal |
Member spend by subtotal (excluding taxes and fees) for lifetime of purchases available to system (looking back up to 2 years) |
|
Monetary |
Spend Last Year |
Decimal |
Member spend by subtotal (excluding taxes and fees) in last year |
|
Monetary |
Spend Categories |
String |
Top 5 Product Categories by spend |
|
Monetary |
Spend SKUs |
String |
Top 5 Product SKUs by spend |
|
RFM |
RFM Score |
String |
String concatenating Recency Score, Frequency Score, and Monetary Score. For example: “4-3-2.” |
|
RFM |
RFM Decile |
Integer |
Distribution within RFM Code values |
|
RFM |
RFM Segment |
String |
Name describing RFM cohort to which the Member belongs (see RFM Cohorts below for details) |
The RFM model evaluates Purchase Activities only within the past two years; the outputs that the model generates are relative to that window of time only. Therefore, the values in certain output Attributes, like First Purchase Date or Spend Total, can change over time as Purchase Activities age out of the two-year lookback period.
Consider the following example. A Member makes the following two purchases:
-
Purchase 1: March 30, 2024
-
Purchase 2: July 1, 2025
Next, let’s say the RFM model’s initial run is executed on January 1, 2026. In this scoring run, the platform would identify Purchase 1 as this Member’s First Purchase Date, as this purchase represents the Member’s oldest purchase within the two-year period.
Later, the RFM model runs on April 1, 2026. As Purchase 1 now falls beyond the two-year lookback period, this purchase will no longer be considered in the model. Instead, the platform will assign Purchase 2 as the new First Purchase Date, as this purchase now represents the Member’s oldest purchase within the last two-years.
RFM Cohorts
The RFM model sorts eligible Members into different marketing cohorts based on the results of the model. A Member’s cohort assignment is populated within the RFM Segment Member Attribute, making it simple to create Segments that target a specific cohort.
The following table lists the standard RFM cohorts, their eligibility requirements, and their suggested use cases.
|
Cohort |
R-score |
F-score |
M-score |
Description |
Use Cases |
|---|---|---|---|---|---|
|
VIP |
4-5 |
3-5 |
5 |
Best customers; high spend, frequent purchases, recent activity |
Premium Offers, loyalty program perks |
|
Loyal |
4-5 |
3-5 |
3-4 |
Good regulars; consistent purchases, mid / upper spend |
Retention and cross-sell |
|
Value Seeker |
4-5 |
3-5 |
1-2 |
Regulars, but lower spend thresholds |
Boost spend with minimum purchase amounts to earn bonuses or target promotions for adjacent higher value products |
|
Potential |
3 |
3-5 |
1-5 |
Recent and somewhat active buyers |
Target personalized Offers to boost next purchase conversion to move up to Loyal / VIP cohorts |
|
New |
5 |
1-2 |
1-5 |
First-time or early buyers |
Onboarding / welcome Offers |
|
Occasional |
3-4 |
1-2 |
1-5 |
Somewhat recent, but low frequency buyers |
Nurture with seasonal promotions and other frequency-boosting engagement e.g. cross-sell promotions for items/categories previously purchased |
|
At-risk |
2 |
3-5 |
1-5 |
Historically frequent customers, but not recent |
Ideal for win-back or re-engagement |
|
Win-back |
1 |
3-5 |
1-5 |
High value historically, but lost recency |
Reactivation campaigns |
|
Churned |
1-2 |
1-2 |
1-5 |
Low recency / frequency / spend; minimal engagement or “cold” list |
Suppression or reactivation only |
In addition to the above cohorts, the RFM Model also randomly assigns ten percent of the eligible Members into a Control Group. These Members can be identified by looking for a value of True in the ML Control Group Member Attribute. Control Groups can be used for testing purposes, and for measuring the lift or engagement achieved by a marketing campaign.